package com.piggy.logi.sys.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;



/**
 * 调度车次信息对象 logi_schedule
 *
 * @author piggy
 * @date 2023-11-21
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("logi_schedule")
public class LogiSchedule implements Serializable {

    private static final long serialVersionUID=1L;

    /** 主键 */
    @ApiModelProperty("主键")
    @TableId(value = "schedule_id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long scheduleId;

    /** 部门id */
    @ApiModelProperty("部门id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long deptId;

    /** 调度单号 YYYYMMDD+序号 */
    @ApiModelProperty("调度单号 YYYYMMDD+序号")
    private String scheduleNo;

    /** 车次号 YYYYMMDD+序号 */
    @ApiModelProperty("车次号 YYYYMMDD+序号")
    private String busNo;

    /** 承运商id */
    @ApiModelProperty("承运商id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long carrierId;

    /** 线路id */
    @ApiModelProperty("线路id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long lineId;

    /** 司机id */
    @ApiModelProperty("司机id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long driverId;

    /** 司机json对象 */
    @ApiModelProperty("司机json对象")
    private String driverJson;

    /** 车辆id */
    @ApiModelProperty("车辆id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long carId;

    /** 车辆json对象 */
    @ApiModelProperty("车辆json对象")
    private String carJson;

    /** 流程状态 */
    @ApiModelProperty("流程状态")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Integer flowStatus;

    /** 预计提货时间 */
    @ApiModelProperty("预计提货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date estPickupTime;

    /** 提货时间 */
    @ApiModelProperty("提货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date pickupTime;

    /** 预计发车时间 */
    @ApiModelProperty("预计发车时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date estDepartTime;

    /** 发车时间 */
    @ApiModelProperty("发车时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date departTime;

    /** 预计到达时间 */
    @ApiModelProperty("预计到达时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date estArriveTime;

    /** 到达时间 */
    @ApiModelProperty("到达时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date arriveTime;

    /** 完成时间 */
    @ApiModelProperty("完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date finishedTime;

    /** 附件 */
    @ApiModelProperty("附件")
    private String attach;

    /** 押送人 */
    @ApiModelProperty("押送人")
    private String escortor;

    /** 押送人证件 */
    @ApiModelProperty("押送人证件")
    private String escortorIdcard;

    /** 押送人手机/电话 */
    @ApiModelProperty("押送人手机/电话")
    private String escortorPhone;

    /** 创建者 */
    @ApiModelProperty("创建者")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /** 创建时间 */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty("更新者")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /** 更新时间 */
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;

    /** 发货网点ID */
    @ApiModelProperty("发货网点ID")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long shipNetId;

    /** 收货网点ID */
    @ApiModelProperty("收货网点ID")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long deliveryNetId;

    /** 发货方省市区、县ID */
    @ApiModelProperty("发货方省市区、县ID")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long shipDistrictId;

    /** 发货方详细地址 */
    @ApiModelProperty("发货方详细地址")
    private String shipAddress;

    /** 发货方经度 */
    @ApiModelProperty("发货方经度")
    private Double shipLng;

    /** 发货方纬度 */
    @ApiModelProperty("发货方纬度")
    private Double shipLat;

    /** 收货方区县Id */
    @ApiModelProperty("收货方区县Id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long deliveryDistrictId;

    /** 收货方详细地址 */
    @ApiModelProperty("收货方详细地址")
    private String deliveryAddress;

    /** 收货方经度 */
    @ApiModelProperty("收货方经度")
    private Double deliveryLng;

    /** 收货方纬度 */
    @ApiModelProperty("收货方纬度")
    private Double deliveryLat;

    /** 能否发车：0.不能 1.能 */
    @ApiModelProperty("能否发车：0.不能 1.能")
    private Integer canDepart;

    /** 车辆id */
    @ApiModelProperty("运单id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long waybillId;

}
